package com.xuecheng.web.exceptions;




import com.xuecheng.commons.enums.ErrorCode;
import com.xuecheng.commons.model.vo.ResponseResult;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@Component
@RestControllerAdvice
public class GlobalExceptionAdvice {
//异常处理方法：当controller方法出现异常，自动进入异常处理器的指定方法中
//  1. 返回值和controller方法一致
    //  2.参数： controller 中的异常对象
//在方法配置一个注解
    //   通过此注解，可以指定进入此方法的异常类型
    @ExceptionHandler(RuntimeException.class)
    public ResponseResult exception(Exception e){
        e.printStackTrace();  //打印堆栈
        ErrorCode code = ErrorCode.ERROR;
        return ResponseResult.errorResult(code);
    }

    //处理业务异常
    @ExceptionHandler(BusinessException.class)
    public ResponseResult businessException(BusinessException e){
        e.printStackTrace();
        ErrorCode code = e.getErrorCode();
        return ResponseResult.errorResult(code);
    }
}
